package com.greet.service;

import com.greet.dto.OrdersDTO;
import com.greet.dto.OrdersPageQueryDTO;
import com.greet.dto.OrdersPaymentDTO;
import com.greet.dto.OrdersSubmitDTO;
import com.greet.entity.Orders;
import com.greet.result.PageResult;
import com.greet.vo.OrderStatisticsVO;
import com.greet.vo.OrderSubmitVO;
import com.greet.vo.OrderVO;
import com.greet.vo.OrdersHistoryVO;

public interface OrderService {
    OrderSubmitVO submit(OrdersSubmitDTO ordersSubmitDTO);

    Long payment(OrdersPaymentDTO paymentDTO);

    OrderVO getById(Long id);

    PageResult historyOrders(OrdersPageQueryDTO ordersPageQueryDTO);

    void repetition(Long id);

    void cancel(Long id);

    void cancel(Orders orders);

    PageResult conditionSearch(OrdersPageQueryDTO ordersPageQueryDTO);

    OrderStatisticsVO statistics();

    void confirm(Long id) throws Exception;

    void delivery(Long id);

    void rejection(Orders orders) throws Exception;

    void complete(Long id);
}
